﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Chilis.Proveedores.Web.ServiceProveedores;
using Chilis.Proveedores.Web.Models;

namespace Chilis.Proveedores.Web.Controllers
{
    public class EvaluacionController : Controller
    {
        ProveedoresServiceClient cliente = new ProveedoresServiceClient();

        [HttpGet]
        public ActionResult Index()
        {
            return View();
        }

        [HttpGet]
        public ActionResult CrearEvaluacion()
        {
            var modelo = new CrearEvaluacionModel();
            modelo.Convocatorias = (from c in cliente.GetConvocatoriasSinEvaluacion()
                                    select new SelectListItem() { Text = c.Nombre, Value = c.IdConvocatoria.ToString() }).ToList();
            modelo.Criterios = (from c in cliente.GetCriterios()
                                select new SelectListItem() { Text = c.Nombre, Value = c.IdCriterio.ToString() }).ToList();
            return View(modelo);
        }

        [HttpPost]
        public JsonResult ConvocatoriaDatos(string codigo)
        {
            var Convocatoria = new ConvocatoriaModel();
            var ProveedoresPreSeleccionados = new List<SelectListItem>();
            if (!codigo.Equals(""))
            {
                var resultado = cliente.GetConvocatoriaById(int.Parse(codigo));
                Convocatoria.Codigo = resultado.Codigo;
                Convocatoria.FechaInicio = resultado.FechaCreacionString;
                Convocatoria.FechaFin = resultado.FechaFinString;
                Convocatoria.Requerimiento = resultado.Requerimiento;
                Convocatoria.RequiereVisita = resultado.Visita.Value ? "SI" : "NO";

                cliente.Close();
            }
            var retorno = Json(Convocatoria);

            return retorno;
        }

        [HttpPost]
        public JsonResult RegistrarEvaluacion(EvaluacionDTO evaluacion)
        {

            var respuesta = cliente.AddEvaluacion(evaluacion);
            var retorno = Json(new { resultado = respuesta });
            return retorno;
        }
    }
}
